
function animate(obj, target, callback) {
    // 避免重复点击事件 导致定时器加速 每执行定时器时先清除上一个定时器
    clearInterval(obj.timer)
    obj.timer = setInterval(function () {
        // 步长值写在定时器里面
        // 步长公式：（目标位置-目标距左侧宽度）/10
        var step = (target - obj.offsetLeft) / 10;
        // 获得的步长值为正数则往上取整 负数往下取整
        step = step >= 0 ? Math.ceil(step) : Math.floor(step)
        if (obj.offsetLeft == target) {
            // 停止动画 本质是停止计时器
            clearInterval(obj.timer)
            // 定时器结束时如有回调函数就执行，没有就掠过不执行
            // if (callback) {

            //     callback()
            // }
            callback && callback()
        }
        //  最终移动位置
        obj.style.left = obj.offsetLeft + step + 'px'
    }, 15)
}



